package org.apache.kafka.niezhipeng.tools;

import java.util.Arrays;

/**
 * 这个对象线程不安全
 *
 * @author Nie ZhiPeng
 * @date 2025/7/25 0:17
 */
public class ByteReader {

    private final byte[] bytes;

    private int offset = 0;

    public ByteReader(byte[] bytes) {
        this.bytes = bytes;
    }

    public byte readByte() {
        return bytes[offset++];
    }

    public int readInt() {
        int byte1 = readByte();
        int byte2 = readByte();
        int byte3 = readByte();
        int byte4 = readByte();
        return byte1 << 24 | byte2 << 16 | byte3 << 8 | byte4;
    }

    public byte[] read(int length) {
        int end = offset + length;
        byte[] copyOfRange = Arrays.copyOfRange(this.bytes, offset, end);
        offset = end;
        return copyOfRange;
    }

}
